package com.sky.service;

import cn.mybatis.mp.core.mybatis.mapper.context.Pager;
import com.sky.entity.Tags;

import java.util.List;

public interface TagsService {

    /**
     * 保存标签
     *
     * @param tags 标签
     */
    void save(Tags tags);

    /**
     * 获取标签名称
     *
     * @return 按排序获取所有标签名称
     */
    List<String> getTagsName();

    /**
     * 更新标签
     *
     * @param tags 标签
     */
    void upDataTags(Tags tags);

    /**
     * 删除标签
     *
     * @param id 标签id
     */
    void DeleteTags(String id);

    /**
     * 根据id获取标签
     *
     * @param id 标签id
     * @return 标签
     */
    Tags getTagsById(Long id);

    /**
     * 根据名称精确获取标签
     *
     * @param name 标签名称
     * @return 标签
     */
    Tags getTagsByNameExact(String name);

    /**
     * 获取前7个标签名称
     * @return 标签名称
     */
    List<String> getScriptTagNames();

    /**
     * 根据标签名查询标签
     * @param name 标签名
     * @return 标签名称列表
     */
    List<String> getTagsByName(String name);

    /**
     * 获取标签分页
     * @param name 标签名
     * @param page 页码
     * @param pageSize 每页数量
     * @return 标签分页
     */
    Pager<Tags> getTagsPage(String name, Integer page, Integer pageSize);
}
